/*
 * MediaDecoder.h
 *
 *  Created on: 2018年5月21日
 *      Author: zhengboyuan
 */

#ifndef MEDIADECODER_H_
#define MEDIADECODER_H_

#include "MediaFormat.h"
#include "MediaFrame.h"

namespace av
{


class MediaDecoder
{
public:
	virtual ~MediaDecoder() {}

    virtual int open(const MediaFormat& fmt) =0;

    virtual void close() =0;

    virtual bool isOpen() =0;

    virtual bool decode(AVPacketPtr& pkt, AVFramePtr& frame) =0;

    virtual void flush() =0;

};


} /* namespace av */

#endif /* MEDIADECODER_H_ */
